﻿#region Copyright Notice
// This file is part of GestionPedago.
// <description>
// Copyright (C) 2012 ENI Ecole Informatique
// 
// GestionPedago is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// <program> is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects.DataClasses;
using GestionPedago.EntityContext.EntityOPTools;
using Persistence.OPManager;

namespace GestionPedago.EntityContext
{
   public partial class PlanningIndividuelFormation : EntityObject
    {

       public List<PlanningECFDetail> GetListePlanificationsECFDetail()
       {
           try
           {
               IQueryable<PlanningECFDetail> query = EntityConnection.GetContext().PlanningECFDetail;
               query = query.Where(it => it.CodePlanning == this.CodePlanning);
           
               /**query.Select(it => it);*/

               return query.ToList();
           }
           catch (Exception ex)
           {
               throw ex;
           }
       }
       
       
       public List<ECF> GetListeECFAPasser()
       {
           try
           {
               List<ECF> lst = new List<ECF>();
               foreach (ECF e in FormationOPManager.GetFormationByCode(this.CodeFormation).GetListeECFAPasser())
               {
                   PlanningECFDetail ped = new PlanningECFDetail();
                   PlanningECF pe = new PlanningECF();
                   pe.ECF = e;
                   ped.PlanningECF = pe;
                   if (!this.GetListePlanificationsECFDetail().Contains(ped, new PlanningECFDetailComparerOnECF()))
                   {
                       lst.Add(e);
                   }
               }
               return lst;
           }
           catch (Exception ex)
           {
               throw ex;
           }
       }

       public List<ValidationCompetence> GetListeValidationCompetence(Competence c)
       {
           List<ValidationCompetence> lst = new List<ValidationCompetence>();
           IQueryable<ValidationCompetence> query = EntityConnection.GetContext().ValidationCompetence;
           query = query.Where(it => (it.IdCompetence == c.IdCompetence && it.PlanningECFDetail.CodePlanning== this.CodePlanning));
           return query.ToList();
       }
    }
}
